﻿#define _CRT_SECURE_NO_WARNINGS

//#include <stdio.h>

//struct stu
//{
//	char name[20];
//	int age;
//	char sex[5];
//	char id[20];
//};
//
//int main()
//{
//	struct stu s1 = { "zhangsan",18,"male","24101100514" };
//	return 0;
//}

//int main()
//{
//	struct stu s1 = { .age = 18, .name = "zhangsan",
//					 .id = "24101100514", .sex = "male" };
//	return 0;
//}

//struct 
//{
//	char name[20];
//	int age;
//	char sex[5];
//	char id[20];
//}x;
//
//struct 
//{
//	char name[20];
//	int age;
//	char sex[5];
//	char id[20];
//}*p;

//#include <stdio.h>
//
//struct S1
//{
//	char c1;
//	int i;
//	char c2;
//};
//
//int main()
//{
//	printf("%zd\n",sizeof(struct S1));
//	return 0;
//};

//#include <stdio.h>
//
//struct S2
//{
//	char c1;
//	char c2;
//	int i;
//};
//
//int main()
//{
//	printf("%zd\n", sizeof(struct S2));
//	return 0;
//}

//#include <stdio.h>
//
//struct S3
//{
//	double d;
//	char c;
//	int i;
//};
//
//int main()
//{
//	printf("%zd\n", sizeof(struct S3));
//	return 0;
//}

//#include <stdio.h>
//
//struct S3
//{
//	double d;
//	char c;
//	int i;
//};
//
//struct S4
//{
// char c1;                                            
// struct S3 s3;
// double d;
//};
//
//int main()
//{
//	printf("%zd\n", sizeof(struct S4));
//	return 0;
//}

//#include <stdio.h>
//#pragma pack(1)//设置默认对⻬数为1
//struct S
//{
//	char c1;
//	int i;
//	char c2;
//};
//
//#pragma pack()//取消设置的对⻬数，还原为默认
//
//int main()
//{
//	//输出的结果是什么？
//	printf("%zd\n", sizeof(struct S));
//	return 0;
//}

#include <stdio.h>

struct S
{
	int data[1000];
	int num;
};

struct S s = { {1,2,3,4}, 1000 };

//结构体传参
void print1(struct S s)
{
	printf("%d\n", s.num);
}

//结构体地址传参
void print2(struct S* ps)
{
	printf("%d\n", ps->num);
}

int main()
{
	print1(s); //传结构体
	print2(&s); //传地址
	return 0;
}
